package cn.sheep.dolphin.utils

import java.io.File

import org.apache.commons.io.FileUtils
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.spark.SparkContext

/**
  * shit
  * 文件处理相关逻辑
  * author: old sheep
  * QQ: 64341393 
  * Created 2018/11/28
  */
object FileHelper {

	/**
	  * 该方法只能删除本地文件目录
	  * @param path
	  */
	def deleteTargetDir(path: String) = {
		val file = new File(path)
		if (file.exists()) {
			// 递归删除目录
			FileUtils.deleteDirectory(file)
		}
	}

	/**
	  * 根据客户端参数来获取文件系统，然后删除对应的目录
	  * @param dirPath
	  * @param sc
	  * @return
	  */
	def deleteDir(dirPath: String, sc: SparkContext)={
		val hadoopConfiguration = sc.hadoopConfiguration
		// fs 是本地文件系统还是分布式文件系统看的core-default.xml中的fs.defaultFS的参数
		val fs = FileSystem.get(hadoopConfiguration)

		val path = new Path(dirPath)
		if(fs.exists(path)) {
			fs.delete(path, true)
		}
	}

}
